Skip to main content

4. Installing GOAD in a VirtualBox Lab

This page is part of a broader series on creating a cybersecurity lab with VirtualBox.
Click here to return to the main project description page.

What is GOAD?

GOAD (Game Of Active Directory) is a pre-built, intentionally vulnerable Active Directory environment created by Orange Cyberdefense designed for penetration testers. Its main purpose is to provide a ready-to-use lab for practicing common attack techniques in a realistic domain setting. The goal of the project is to let you sharpen your AD pentesting skills without the hassle of setting up everything from scratch.

For this homelab, we will use Vagrant for provisionning and run it on VirtualBox.

👉 Official documentation: https://orange-cyberdefense.github.io/GOAD/

System Requirements

GOAD is quite resource-intensive. You should allocate (approximatively):

VariantVMsCPU + RAMStorageUse Case
GOAD (Full)58 vCPU + 24 GB RAM~115 GBFull forest, trusts, and labs
GOAD-Light34 vCPU + 20 GB RAM~20 GBLighter scenarios
GOAD-Mini22–4 vCPU + 16 GB~16 GBMinimal lab (DC + client only)
SCCM4Similar to full~MoreSCCM-focused use cases
Disk space

Windows Server images consume ~14–22 GB each. Ensure at least 115 GB free on your disk for GOAD (Full) to prevent provisioning failures.

RAM

Ensure your host has enough RAM to run all VMs. If you're short on memory, consider tweaking the default values or using GOAD-Mini or GOAD-Light.

Prerequisites

You'll need the following tools installed:

Installing GOAD

Follow the instructions for installing GOAD on VirtualBox in a Windows OS listed on the official documentation website here

Default install directory

Make sure to change the default directory where the scripts download and install the VMs if you don't have enough space on the default partition, or if you want to organize the lab files in a specific location with sufficient disk space. To do this, follow the instructions below before the install.

Change Folder Where Vagrant Downloads Boxes

By default, Vagrant stores boxes in ~/.vagrant.d/.

To change this, set the environment variable in your Debian WSL:

export VAGRANT_HOME=/your/custom/folder

Change Folder Where VirtualBox Creates VMs

  1. Open VirtualBox Preferences
  2. Go to General > Default Machine Folder
  3. Choose your preferred location

alt text

You should have this configuration before installing to follow along with our homelab deployment :

alt text

Folow the documentation listed here to learn how to set these options, or simply use the following commands from GOAD's interactive mode command line :

> set_lab GOAD
> set_ip_range 10.88.88
> set_provider virtualbox
> Install

Troubleshooting Common Issues While installing

For troubleshooting, check out the official guide at: https://github.com/Orange-Cyberdefense/GOAD/blob/main/docs/mkdocs/docs/troobleshoot.md

For any other issues, check the official GitHub Issues page to see if your problem has already been reported and how it was resolved.

For example, I personally encountered internet connectivity issues on some machines. I had to log in manually using the vagrant account (vagrant:vagrant) to fix the DNS settings of the NAT interface. Another issue occurred during the execution of the ad-child_domain.yml playbook, which got stuck at the "Add child domain to parent domain on dc02" task. This was already reported here.

If a playbook fails, sometimes the best solution is to restart all the VMs and re-run the playbooks — starting from the one that failed — to avoid redoing previously completed steps. You can do this with:

instance_id > provision_lab_from ad-child_domain.yml

Depending on the lab you selected (the default being GOAD), you can refer to the list of available playbooks here: GOAD playbooks list Always read the output carefully to track the progress and spot any errors.

VMs Freezing

If VMs freeze or the playbook hangs, try:

  • Restarting all VMs
  • Unchecking Nested Paging
  • Enabling Legacy Paravirtualization

alt text

Disabling Nested Paging in VirtualBox settings.

info

You can revert to the default values after GOAD is installed to improve performance and hardware resource management for the VMs by virtualbox.

WinRM Authentication Failed

Edit the Vagrantfile to allow plaintext WinRM (only for lab use!):

config.winrm.transport = "plaintext"
config.winrm.basic_auth_only = true

alt text

WinRM plaintext configuration for provisioning to succeed.

Configuring VirtualBox Networking

Snapshot

Once the installation is successful, take a snapshot of your virtual machines. This will save you a lot of time if you need to roll back later.

To integrate GOAD with the rest of our lab, we’ll want to ensure the GOAD VMs are on the "Homelab - AD" internal network. Use this PowerShell snippet to deactivate the first network interface set to NAT (we won't need it because we will use our pfSense firewall/router to reach the internet) and add a second network interface set as the Homelab - AD to connect to our pfSense router :

$VBoxManage = "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe"
$vmNames = @("GOAD-DC01", "GOAD-DC02", "GOAD-DC03", "GOAD-SRV02", "GOAD-SRV03")
$networkName = "Homelab - AD"
$adapterType = "82540EM" # Intel PRO/1000 MT
$promiscuousMode = "deny"

foreach ($vm in $vmNames) {
& "$VBoxManage" modifyvm $vm --nic1 none
& "$VBoxManage" modifyvm $vm --nic2 intnet
& "$VBoxManage" modifyvm $vm --intnet2 "$networkName"
& "$VBoxManage" modifyvm $vm --nictype2 $adapterType
& "$VBoxManage" modifyvm $vm --cableconnected2 on
& "$VBoxManage" modifyvm $vm --nicpromisc2 $promiscuousMode
}

Network Configuration for Internet Access and Lab Functionality

The following manual network configuration has been tested and confirmed to work for both internet access and proper lab functionality. To apply these settings, log in manually using the vagrant account (vagrant:vagrant)and navigate to:

Network Settings > Interface Ethernet 2 > IPv4 Settings

Update only the Preferred DNS, Alternate DNS, and Default Gateway fields. Leave all other fields unchanged — they are automatically set by the Vagrant provisioning scripts.

DC01

  • Preferred DNS Server: 10.88.88.1
  • Alternate DNS Server: 127.0.0.1
  • Default Gateway: 10.88.88.1

DC01 Network Configuration

DC02

  • Preferred DNS Server: 10.88.88.1
  • Alternate DNS Server: 127.0.0.1
  • Default Gateway: 10.88.88.1

DC02 Network Configuration

DC03

  • Preferred DNS Server: 10.88.88.1
  • Alternate DNS Server: 127.0.0.1
  • Default Gateway: 10.88.88.1

DC03 Network Configuration

SRV02

  • Preferred DNS Server: 10.88.88.11
  • Alternate DNS Server: 10.88.88.1
  • Default Gateway: 10.88.88.1

SRV02 Network Configuration

SRV03

  • Preferred DNS Server: 10.88.88.12
  • Alternate DNS Server: 10.88.88.1
  • Default Gateway: 10.88.88.1

SRV03 Network Configuration

additional machines or extensions

If you install additional machines or extensions into the lab, make sure to apply the same network configuration as described above.
This is necessary to ensure proper integration into the homelab environment and to guarantee internet access from those machines.

Adding Extensions

You can add extensions to the lab, here

guacamole : Add a vm with guacamole to get a quick access on lab exchange : Add an exchange to GOAD or GOAD-Light lab ws01 : Add an hardened workstation to GOAD or GOAD-Light lab lx01 : Add a linux vm to GOAD or GOAD-Light lab wazuh : Add wazuh EDR to visualize alerts (is convered in the next module, installed manually, gives more options and demostrates how to set everything up, plus you would need to redo some steps because the SOC and AD are two different subnets) elk : Add an ELK to collect and read the logs

Before installing, revert the snaphosts back and the networking ooptions back to what they were to guarantee everything works correctly

Congratulations ! pfSense is now fully configured with proper segmentation and firewall rules. Your lab environment is ready to deploy employee workstations and install security tools for hands-on testing and analysis.
Proceed to the next section if you want to deploy the full lab or add one of the environnements described here.